//
//  TJUserInfoModel.swift
//  weibo
//
//  Created by 简祖明 on 16/7/29.
//  Copyright © 2016年 汤娟. All rights reserved.
//

import UIKit

//遵守NSCoding协议
class TJUserInfoModel: NSObject,NSCoding {
    
    var access_token : String?
    
    //文档中标注是String?类型，导致程序崩溃
    //expires_in是access_token的生命周期，单位是秒数。
    //类型应该是浮点型，赋初始值
    
    var expires_in : NSTimeInterval = 0
    
    var uid : String?
    
    //用户昵称
    var screen_name : String?
    //头像
    var profile_image_url : String?
    
    init(dict : [String : AnyObject]) {
        super.init()
        setValuesForKeysWithDictionary(dict)
    }
    
    //防止崩溃
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        //
    }
    
    
    //MARK: - 归档
    //归档：把对象以二进制的形式保存到沙盒里
    func encodeWithCoder(aCoder: NSCoder) {
        
        aCoder.encodeObject(access_token, forKey: "access_token")
        
    }
    
    //MARK: - 解档
    //解档：把沙盒里的二进制转换成我们的对象
    required init?(coder aDecoder: NSCoder) {
        self.access_token = aDecoder.decodeObjectForKey("access_token") as? String
        //调用父类
        super.init()
}
    
    //保存对象到沙盒
    func savemodel() {
        //路径
        let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).last!
        //给路径拼接一个文件名
        let filePath = (path as NSString).stringByAppendingPathComponent("aaa.aa")
        NSKeyedArchiver.archiveRootObject(self, toFile: filePath)
    }

}

/*
access_token	string	用户授权的唯一票据，用于调用微博的开放接口，同时也是第三方应用验证微博用户登录的唯一票据，第三方应用应该用该票据和自己应用内的用户建立唯一影射关系，来识别登录状态，不能使用本返回值里的UID字段来做登录识别。
expires_in	string	access_token的生命周期，单位是秒数。
remind_in	string	access_token的生命周期（该参数即将废弃，开发者请使用expires_in）。
uid	string	授权用户的UID，本字段只是为了方便开发者，减少一次user/show接口调用而返回的，第三方应用不能用此字段作为用户登录状态的识别，只有access_token才是用户授权的唯一票据。
*/

